package cn.catsdad.service.api;

import cn.catsdad.base.page.PageParam;
import cn.catsdad.base.service.api.IBaseCrudService;
import cn.catsdad.dto.DepartmentDTO;
import cn.catsdad.vo.TreeNodeVO;

import java.util.List;
import java.util.Set;

/**
 * 部门service
 *
 * @author xuyonglong
 * @version V1.0 2023/4/12
 */
public interface DepartmentService extends IBaseCrudService<DepartmentDTO, Long> {

    /**
     * 根据用户id查询部门
     *
     * @param userId 用户id
     * @return 部门
     */
    DepartmentDTO queryDepartmentOfUser(Long userId);

    /**
     * 查询部门树形
     *
     * @param param 查询参数
     * @return 树形
     */
    List<TreeNodeVO> queryTree(PageParam param);

    /**
     * 查询所有子级id
     *
     * @param parentId 父级id
     * @return 子级id
     */
    Set<Long> queryChildrenIds(Long parentId);

}
